
<h1><span class="yiyi-st" id="yiyi-12">numpy.putmask</span></h1>
        <blockquote>
        <p>原文：<a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.putmask.html">https://docs.scipy.org/doc/numpy/reference/generated/numpy.putmask.html</a></p>
        <p>译者：<a href="https://github.com/wizardforcel">飞龙</a> <a href="http://usyiyi.cn/">UsyiyiCN</a></p>
        <p>校对：（虚位以待）</p>
        </blockquote>
    
<dl class="function">
<dt id="numpy.putmask"><span class="yiyi-st" id="yiyi-13"> <code class="descclassname">numpy.</code><code class="descname">putmask</code><span class="sig-paren">(</span><em>a</em>, <em>mask</em>, <em>values</em><span class="sig-paren">)</span></span></dt>
<dd><p><span class="yiyi-st" id="yiyi-14">基于条件和输入值更改数组的元素。</span></p>
<p><span class="yiyi-st" id="yiyi-15">Sets <code class="docutils literal"><span class="pre">a.flat[n]</span> <span class="pre">=</span> <span class="pre">values[n]</span></code> for each n where <code class="docutils literal"><span class="pre">mask.flat[n]==True</span></code>.</span></p>
<p><span class="yiyi-st" id="yiyi-16">如果<em class="xref py py-obj">值</em>与<em class="xref py py-obj">a</em>和<em class="xref py py-obj">掩码</em>的大小不同，则会重复。</span><span class="yiyi-st" id="yiyi-17">这给出与<code class="docutils literal"><span class="pre">a [mask]</span> <span class="pre">=</span> <span class="pre">值</span></code>不同的行为。</span></p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name">
<col class="field-body">
<tbody valign="top">
<tr class="field-odd field"><th class="field-name"><span class="yiyi-st" id="yiyi-18">参数：</span></th><td class="field-body"><p class="first"><span class="yiyi-st" id="yiyi-19"><strong>a</strong>：array_like</span></p>
<blockquote>
<div><p><span class="yiyi-st" id="yiyi-20">目标数组。</span></p>
</div></blockquote>
<p><span class="yiyi-st" id="yiyi-21"><strong>掩码</strong>：array_like</span></p>
<blockquote>
<div><p><span class="yiyi-st" id="yiyi-22">布尔掩码数组。</span><span class="yiyi-st" id="yiyi-23">它必须与<em class="xref py py-obj">a</em>具有相同的形状。</span></p>
</div></blockquote>
<p><span class="yiyi-st" id="yiyi-24"><strong>值</strong>：array_like</span></p>
<blockquote class="last">
<div><p><span class="yiyi-st" id="yiyi-25">放入<em class="xref py py-obj">a</em>中的<em class="xref py py-obj">掩码</em>的值为True。</span><span class="yiyi-st" id="yiyi-26">如果<em class="xref py py-obj">值</em>小于<em class="xref py py-obj">a</em>，则会重复。</span></p>
</div></blockquote>
</td>
</tr>
</tbody>
</table>
<div class="admonition seealso">
<p class="first admonition-title"><span class="yiyi-st" id="yiyi-27">也可以看看</span></p>
<p class="last"><span class="yiyi-st" id="yiyi-28"><a class="reference internal" href="numpy.place.html#numpy.place" title="numpy.place"><code class="xref py py-obj docutils literal"><span class="pre">place</span></code></a>，<a class="reference internal" href="numpy.put.html#numpy.put" title="numpy.put"><code class="xref py py-obj docutils literal"><span class="pre">put</span></code></a>，<a class="reference internal" href="numpy.take.html#numpy.take" title="numpy.take"><code class="xref py py-obj docutils literal"><span class="pre">take</span></code></a>，<a class="reference internal" href="numpy.copyto.html#numpy.copyto" title="numpy.copyto"><code class="xref py py-obj docutils literal"><span class="pre">copyto</span></code></a></span></p>
</div>
<p class="rubric"><span class="yiyi-st" id="yiyi-29">例子</span></p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">6</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">np</span><span class="o">.</span><span class="n">putmask</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">x</span><span class="o">&gt;</span><span class="mi">2</span><span class="p">,</span> <span class="n">x</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span>
<span class="go">array([[ 0,  1,  2],</span>
<span class="go">       [ 9, 16, 25]])</span>
</pre></div>
</div>
<p><span class="yiyi-st" id="yiyi-30">如果<em class="xref py py-obj">值</em>小于<em class="xref py py-obj">a</em>，则重复以下操作：</span></p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">np</span><span class="o">.</span><span class="n">putmask</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">x</span><span class="o">&gt;</span><span class="mi">1</span><span class="p">,</span> <span class="p">[</span><span class="o">-</span><span class="mi">33</span><span class="p">,</span> <span class="o">-</span><span class="mi">44</span><span class="p">])</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span>
<span class="go">array([  0,   1, -33, -44, -33])</span>
</pre></div>
</div>
</dd></dl>
